// models/tag.js

module.exports = (sequelize, DataTypes) => {
    const Tag = sequelize.define('Tag', {
        id: {
            type: DataTypes.INTEGER,
            primaryKey: true,
            unique: true,
            allowNull: false
        },
        name: {
            type: DataTypes.STRING,
            unique: true,
            allowNull: false
        }
    }, {
        tableName: 'Tag',  // 对应数据库的 Tags 表
        timestamps: false  // 如果不需要自动生成 createdAt 和 updatedAt 字段，可以禁用
    });


    Tag.associate = (models) => {
        Tag.belongsToMany(models.Product, {
            through: models.ProductTags,
            foreignKey: 'tagID',
            otherKey: 'rjCode',
            as: 'products'
        });
    };
    // Tag.associate = function (models) {
    //     Tag.belongsToMany(models.Product, { through: 'ProductTags' });
    // };
    // Tag.associate = function (models) {
    //     // 定义多对多关联关系，使用 ProductTags 作为中间表
    //     Tag.belongsToMany(models.Product, {
    //         through: 'ProductTags',   // 中间表的名字
    //         foreignKey: 'tagID',      // 在中间表中的外键（与 Tag 关联）
    //         // otherKey: 'rjCode'        // 在中间表中的另一个外键（与 Product 关联）
    //     });
    // };

    return Tag;
};